﻿package com.leqicheng.tenon.pay;

import com.leqicheng.tenon.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class ProductOrderActivity extends Activity implements OnClickListener {
	private ProductOrderActivity mContext;
	private TextView mNavigationTitle;
	private ImageButton mNavigationBack;
	private String mProductId;
	private TextView mTvProductNumber;
	private TextView mTvProductMoney;
	private ImageView mBtnChooseAlipay;
	private ImageView mBtnChooseWeixin;
	private RelativeLayout mLayoutAlipay;
	private RelativeLayout mLayoutWeixin;
	private int mOrderType;
	private Button mBtnOkToPay;
	private String mOrderBody;
//	private PayReq req;
	private String mOrderPrice;
//	private IWXAPI msgApi;
	private final static int WEIXIN = 101;
	private final static int ALIPAY = 100;
	private static final int SDK_PAY_FLAG = 1;
	private static final int SDK_CHECK_FLAG = 2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.activity_usercenter_payment);
		this.mContext = this;
		this.mProductId = this.getIntent().getStringExtra("product_id");

		this.mTvProductNumber = (TextView) this
				.findViewById(R.id.widgt_usercenter_product_number);
		this.mTvProductMoney = (TextView) this
				.findViewById(R.id.widgt_usercenter_product_money);
		this.mLayoutAlipay = (RelativeLayout) this
				.findViewById(R.id.usercenter_payment_alipay);
		this.mLayoutWeixin = (RelativeLayout) this
				.findViewById(R.id.usercenter_payment_weixin);
		this.mBtnOkToPay = (Button) this
				.findViewById(R.id.usercenter_payment_ok_to_pay);
		this.mBtnOkToPay.setOnClickListener(this);
		this.mLayoutAlipay.setOnClickListener(this);
		this.mLayoutWeixin.setOnClickListener(this);
		this.mBtnChooseAlipay = (ImageView) this
				.findViewById(R.id.usercenter_payment_check_alipay);
		this.mBtnChooseWeixin = (ImageView) this
				.findViewById(R.id.usercenter_payment_check_weixin);
//		this.ChooseOrderByAlipay();
//
//		this.GetProductCalcByHttp();

	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		
	}

//	private void ChooseOrderByAlipay() {
//		this.mBtnChooseAlipay
//				.setBackgroundResource(R.drawable.icon_choose_checked);
//		this.mBtnChooseWeixin
//				.setBackgroundResource(R.drawable.icon_choose_nocheck);
//		this.mOrderType = ALIPAY;
//	}
//
//	private void ChooseOrderByWeixin() {
//		this.mBtnChooseWeixin
//				.setBackgroundResource(R.drawable.icon_choose_checked);
//		this.mBtnChooseAlipay
//				.setBackgroundResource(R.drawable.icon_choose_nocheck);
//		this.mOrderType = WEIXIN;
//	}
//
//	private void GetProductCalcByHttp() {
//		ProductOrderModel model = ProductOrderModel.getInstance();
//		model.setProductId(this.mProductId);
//		model.setCount("1");
//		ProductOrderHttpRequest productOrderHttpRequest = new ProductOrderHttpRequest(
//				this.mContext);
//		productOrderHttpRequest.postRequest(model);
//	}
//
//	@Override
//	public void onClick(View v) {
//		switch (v.getId()) {
//		case R.id.usercenter_payment_alipay:
//			this.ChooseOrderByAlipay();
//			break;
//		case R.id.usercenter_payment_weixin:
//			this.ChooseOrderByWeixin();
//			break;
//		case R.id.usercenter_payment_ok_to_pay:
//			this.PaymentOrder();
//		default:
//			break;
//		}
//
//	}
//
//	private void PaymentOrder() {
//		if (LoginModel.getInstance().getUserId() == null) {
//			return;
//		}
//		ProductOrderModel model;
//		switch (this.mOrderType) {
//		case WEIXIN:
//			model = ProductOrderModel.getInstance();
//			model.setProductId(this.mProductId);
//			model.setCount("1");
//			model.setBody(this.mOrderBody);
//			ChargeWeixinHttpRequest chargeWeixinHttpRequest = new ChargeWeixinHttpRequest(
//					this.mContext);
//			chargeWeixinHttpRequest.postRequest(model);
//			this.mProgressDialog = CustomProgressDialog
//					.createDialog(this.mContext);
//			this.mProgressDialog.show();
//			break;
//		case ALIPAY:
//			model = ProductOrderModel.getInstance();
//			model.setProductId(this.mProductId);
//			model.setCount("1");
//			model.setBody(this.mOrderBody);
//			ChargeAliPayHttpRequest chargeAliPayHttpRequest = new ChargeAliPayHttpRequest(
//					this.mContext);
//			chargeAliPayHttpRequest.postRequest(model);
//			this.mProgressDialog = CustomProgressDialog
//					.createDialog(this.mContext);
//			this.mProgressDialog.show();
//			break;
//		default:
//			break;
//		}
//
//	}
//
//	@Override
//	public void onComplete(RequestTypeEnum requestType, int status,
//			Header[] headers, String responseBody) {
//		switch (status) {
//		case RequestStatus.OBTAIN_SUCCESS:
//			switch (requestType) {
//			case DIAMOND_CALC:
//				this.ProcessingOrderData(responseBody);
//				break;
//			case CHARGE_WECHAT:
//				this.ProcessingChargeWechatData(responseBody);
//				break;
//			case CHARGE_ALIPAY:
//				this.ProcessingChargeAliPayData(responseBody);
//			default:
//				break;
//			}
//			break;
//
//		default:
//			if (this.mProgressDialog != null) {
//				this.mProgressDialog.dismiss();
//			}
//			break;
//		}
//
//	}
//
//	@Override
//	protected void onResume() {
//		if (this.mProgressDialog != null) {
//			this.mProgressDialog.dismiss();
//		}
//		super.onResume();
//	}
//
//	private void ProcessingChargeAliPayData(String responseBody) {
//		String mOrderPayId = JSON.parseObject(responseBody).getString(
//				"diankai_pay_id");
//		ProductOrderModel.getInstance().setDianKaiPayId(mOrderPayId);
//		this.payment(this.mOrderBody, null, this.mOrderPrice, mOrderPayId);
//	}
//
//	private void ProcessingChargeWechatData(String responseBody) {
//		String prepayId = JSON.parseObject(responseBody).getString("prepay_id");
//		ProductOrderModel.getInstance().setDianKaiPayId(
//				JSON.parseObject(responseBody).getString("diankai_pay_id"));
//		this.msgApi = WXAPIFactory.createWXAPI(this, null);
//		if (this.msgApi.isWXAppInstalled()) {
//			this.genPayReq(prepayId);
//		} else {
//			if (this.mProgressDialog != null) {
//				this.mProgressDialog.dismiss();
//			}
//			CommonDialog dialog = CommonDialog.createDialog(this.mContext,
//					null, new OnCustomDialogListener() {
//
//						@Override
//						public void dialogBack(boolean successed) {
//							if (successed) {
//							}
//						}
//					});
//			dialog.setDialogTitle("提示");
//			dialog.setDialogText("请先安装微信，然后用微信支付");
//			dialog.setOneButton().setRightButton("知道了");
//			dialog.show();
//		}
//	}
//
//	private void genPayReq(String prepayId) {
//		this.req = new PayReq();
//		this.req.appId = WeixinConstants.APP_ID;
//		this.req.partnerId = WeixinConstants.MCH_ID;
//		this.req.prepayId = prepayId;
//		this.req.packageValue = "Sign=WXPay";
//		this.req.nonceStr = this.genNonceStr();
//		this.req.timeStamp = String.valueOf(this.genTimeStamp());
//
//		List<NameValuePair> signParams = new LinkedList<NameValuePair>();
//		signParams.add(new BasicNameValuePair("appid", this.req.appId));
//		signParams.add(new BasicNameValuePair("noncestr", this.req.nonceStr));
//		signParams
//				.add(new BasicNameValuePair("package", this.req.packageValue));
//		signParams.add(new BasicNameValuePair("partnerid", this.req.partnerId));
//		signParams.add(new BasicNameValuePair("prepayid", this.req.prepayId));
//		signParams.add(new BasicNameValuePair("timestamp", this.req.timeStamp));
//
//		this.req.sign = this.genAppSign(signParams);
//
//		Log.e("orion", signParams.toString());
//
//		this.msgApi.registerApp(WeixinConstants.APP_ID);
//		this.msgApi.sendReq(this.req);
//
//	}
//
//	private void ProcessingOrderData(String responseBody) {
//		String productNumber = JSON.parseObject(responseBody).getString(
//				"diamond");
//		String productMoneyInCent = JSON.parseObject(responseBody).getString(
//				"rmb");
//		while (productMoneyInCent.length() < 3) {
//			productMoneyInCent = "0" + productMoneyInCent;
//		}
//		String productMoneyInYuan = productMoneyInCent.substring(0,
//				productMoneyInCent.length() - 2)
//				+ "."
//				+ productMoneyInCent.substring(productMoneyInCent.length() - 2,
//						productMoneyInCent.length());
//		this.mOrderBody = "点开玩平台 " + productNumber + " 钻";
//		this.mOrderPrice = productMoneyInYuan;
//		this.mTvProductNumber.setText("订单名称：点开玩平台 " + productNumber + " 钻");
//		this.mTvProductMoney.setText(productMoneyInYuan);
//	}
//
//	private String genNonceStr() {
//		Random random = new Random();
//		return MD5.getMessageDigest(String.valueOf(random.nextInt(10000))
//				.getBytes());
//	}
//
//	private long genTimeStamp() {
//		return System.currentTimeMillis() / 1000;
//	}
//
//	private String genAppSign(List<NameValuePair> params) {
//		StringBuilder sb = new StringBuilder();
//
//		for (int i = 0; i < params.size(); i++) {
//			sb.append(params.get(i).getName());
//			sb.append('=');
//			sb.append(params.get(i).getValue());
//			sb.append('&');
//		}
//		sb.append("key=");
//		sb.append(WeixinConstants.API_KEY);
//
//		String appSign = MD5.getMessageDigest(sb.toString().getBytes())
//				.toUpperCase();
//		Log.e("orion", appSign);
//		return appSign;
//	}
//
//	private final Handler mHandler = new Handler() {
//		@Override
//		public void handleMessage(Message msg) {
//			switch (msg.what) {
//			case SDK_PAY_FLAG: {
//				PayResult payResult = new PayResult((String) msg.obj);
//
//				// 支付宝返回此次支付结果及加签，建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
//				String resultInfo = payResult.getResult();
//
//				String resultStatus = payResult.getResultStatus();
//
//				// 判断resultStatus 为“9000”则代表支付成功，具体状态码代表含义可参考接口文档
//				if (TextUtils.equals(resultStatus, "9000")) {
//					Toast.makeText(ProductOrderActivity.this.mContext, "支付成功",
//							Toast.LENGTH_SHORT).show();
//				} else {
//					// 判断resultStatus 为非“9000”则代表可能支付失败
//					// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认，最终交易是否成功以服务端异步通知为准（小概率状态）
//					if (TextUtils.equals(resultStatus, "8000")) {
//						// Toast.makeText(PayDemoActivity.this, "支付结果确认中",
//						// Toast.LENGTH_SHORT).show();
//
//					} else {
//						// 其他值就可以判断为支付失败，包括用户主动取消支付，或者系统返回的错误
//						// Toast.makeText(PayDemoActivity.this, "支付失败",
//						// Toast.LENGTH_SHORT).show();
//
//					}
//				}
//				break;
//			}
//			case SDK_CHECK_FLAG: {
//				// Toast.makeText(PayDemoActivity.this, "检查结果为：" + msg.obj,
//				// Toast.LENGTH_SHORT).show();
//				break;
//			}
//			default:
//				break;
//			}
//		};
//	};
//
//	/**
//	 * call alipay sdk pay. 调用SDK支付
//	 *
//	 */
//	public void payment(String subject, String body, String price, String payId) {
//		if (TextUtils.isEmpty(AlipayConstant.PARTNER)
//				|| TextUtils.isEmpty(AlipayConstant.RSA_PRIVATE)
//				|| TextUtils.isEmpty(AlipayConstant.SELLER)) {
//			// new AlertDialog.Builder(this)
//			// .setTitle("警告")
//			// .setMessage("需要配置PARTNER | RSA_PRIVATE| SELLER")
//			// .setPositiveButton("确定",
//			// new DialogInterface.OnClickListener() {
//			// @Override
//			// public void onClick(
//			// DialogInterface dialoginterface, int i) {
//			// //
//			// PayDemoActivity.this.finish();
//			// }
//			// }).show();
//			return;
//		}
//		// 订单
//		String orderInfo = this.getOrderInfo(subject, body, price, payId);
//
//		// 对订单做RSA 签名
//		String sign = this.sign(orderInfo);
//		try {
//			// 仅需对sign 做URL编码
//			sign = URLEncoder.encode(sign, "UTF-8");
//		} catch (UnsupportedEncodingException e) {
//			e.printStackTrace();
//		}
//
//		// 完整的符合支付宝参数规范的订单信息
//		final String payInfo = orderInfo + "&sign=\"" + sign + "\"&"
//				+ this.getSignType();
//
//		Runnable payRunnable = new Runnable() {
//
//			@Override
//			public void run() {
//				// 构造PayTask 对象
//				PayTask alipay = new PayTask(ProductOrderActivity.this.mContext);
//				// 调用支付接口，获取支付结果
//				String result = alipay.pay(payInfo);
//
//				Message msg = new Message();
//				msg.what = SDK_PAY_FLAG;
//				msg.obj = result;
//				ProductOrderActivity.this.mHandler.sendMessage(msg);
//			}
//		};
//
//		// 必须异步调用
//		Thread payThread = new Thread(payRunnable);
//		payThread.start();
//	}
//
//	// /**
//	// * check whether the device has authentication alipay account.
//	// * 查询终端设备是否存在支付宝认证账户
//	// *
//	// */
//	// public void check(View v) {
//	// Runnable checkRunnable = new Runnable() {
//	//
//	// @Override
//	// public void run() {
//	// // 构造PayTask 对象
//	// PayTask payTask = new PayTask(
//	// (Activity) AliPayHandle.this.mContext);
//	// // 调用查询接口，获取查询结果
//	// boolean isExist = payTask.checkAccountIfExist();
//	//
//	// Message msg = new Message();
//	// msg.what = SDK_CHECK_FLAG;
//	// msg.obj = isExist;
//	// PayDemoActivity.this.mHandler.sendMessage(msg);
//	// }
//	// };
//	//
//	// Thread checkThread = new Thread(checkRunnable);
//	// checkThread.start();
//	//
//	// }
//
//	// /**
//	// * get the sdk version. 获取SDK版本号
//	// *
//	// */
//	// public void getSDKVersion() {
//	// PayTask payTask = new PayTask(this);
//	// String version = payTask.getVersion();
//	// Toast.makeText(this, version, Toast.LENGTH_SHORT).show();
//	// }
//
//	/**
//	 * create the order info. 创建订单信息
//	 *
//	 */
//	public String getOrderInfo(String subject, String body, String price,
//			String payId) {
//
//		// 签约合作者身份ID
//		String orderInfo = "partner=" + "\"" + AlipayConstant.PARTNER + "\"";
//
//		// 签约卖家支付宝账号
//		orderInfo += "&seller_id=" + "\"" + AlipayConstant.SELLER + "\"";
//
//		// 商户网站唯一订单号
//		orderInfo += "&out_trade_no=" + "\"" + payId + "\"";
//
//		// 商品名称
//		orderInfo += "&subject=" + "\"" + subject + "\"";
//
//		// 商品详情
//		orderInfo += "&body=" + "\"" + body + "\"";
//
//		// 商品金额
//		orderInfo += "&total_fee=" + "\"" + price + "\"";
//
//		// 服务器异步通知页面路径
//		orderInfo += "&notify_url=" + "\""
//				+ "http://leqicheng.com/ali/notify-ali-order-result" + "\"";
//
//		// 服务接口名称， 固定值
//		orderInfo += "&service=\"mobile.securitypay.pay\"";
//
//		// 支付类型， 固定值
//		orderInfo += "&payment_type=\"1\"";
//
//		// 参数编码， 固定值
//		orderInfo += "&_input_charset=\"utf-8\"";
//
//		// 设置未付款交易的超时时间
//		// 默认30分钟，一旦超时，该笔交易就会自动被关闭。
//		// 取值范围：1m～15d。
//		// m-分钟，h-小时，d-天，1c-当天（无论交易何时创建，都在0点关闭）。
//		// 该参数数值不接受小数点，如1.5h，可转换为90m。
//		orderInfo += "&it_b_pay=\"30m\"";
//
//		// extern_token为经过快登授权获取到的alipay_open_id,带上此参数用户将使用授权的账户进行支付
//		// orderInfo += "&extern_token=" + "\"" + extern_token + "\"";
//
//		// 支付宝处理完请求后，当前页面跳转到商户指定页面的路径，可空
//		orderInfo += "&return_url=\"m.alipay.com\"";
//
//		// 调用银行卡支付，需配置此参数，参与签名， 固定值 （需要签约《无线银行卡快捷支付》才能使用）
//		// orderInfo += "&paymethod=\"expressGateway\"";
//
//		return orderInfo;
//	}
//
//	// /**
//	// * get the out_trade_no for an order. 生成商户订单号，该值在商户端应保持唯一（可自定义格式规范）
//	// *
//	// */
//	// public String getOutTradeNo() {
//	// SimpleDateFormat format = new SimpleDateFormat("MMddHHmmss",
//	// Locale.getDefault());
//	// Date date = new Date();
//	// String key = format.format(date);
//	//
//	// Random r = new Random();
//	// key = key + r.nextInt();
//	// key = key.substring(0, 15);
//	// return key;
//	// }
//
//	/**
//	 * sign the order info. 对订单信息进行签名
//	 *
//	 * @param content
//	 *            待签名订单信息
//	 */
//	public String sign(String content) {
//		return SignUtils.sign(content, AlipayConstant.RSA_PRIVATE);
//	}
//
//	/**
//	 * get the sign type we use. 获取签名方式
//	 *
//	 */
//	public String getSignType() {
//		return "sign_type=\"RSA\"";
//	}
}
